using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace Sigecov.Models.Mapping
{
    public class PedidoMap : EntityTypeConfiguration<Pedido>
    {
        public PedidoMap()
        {
            // Primary Key
            this.HasKey(t => t.pedId);

            // Properties
            // Table & Column Mappings
            this.ToTable("Pedidos");
            this.Property(t => t.pedId).HasColumnName("pedId");
            this.Property(t => t.cliId).HasColumnName("cliId");
            this.Property(t => t.funId).HasColumnName("funId");
            this.Property(t => t.traId).HasColumnName("traId");
            this.Property(t => t.pedValorFrete).HasColumnName("pedValorFrete");
            this.Property(t => t.pedValorTotal).HasColumnName("pedValorTotal");
            this.Property(t => t.pedDataCadastro).HasColumnName("pedDataCadastro");
            this.Property(t => t.pedDataEntrega).HasColumnName("pedDataEntrega");
            this.Property(t => t.pedDataEnvio).HasColumnName("pedDataEnvio");

            // Relationships
            this.HasRequired(t => t.Cliente)
                .WithMany(t => t.Pedidos)
                .HasForeignKey(d => d.cliId);
            this.HasRequired(t => t.Funcionario)
                .WithMany(t => t.Pedidos)
                .HasForeignKey(d => d.funId);
            this.HasRequired(t => t.Transportadora)
                .WithMany(t => t.Pedidos)
                .HasForeignKey(d => d.traId);

        }
    }
}
